clear; close('all'); clc;
addpath '..\common';

fs = 625e6;

iqpath = '.\data\2400_WLAN11BE_BW320M_EHT2x_GI1.6_MCS7_LEN4096Byte\WLAN11BE_BW320M_EHT2x_GI1.6_MCS7_LEN4096Byte.rm';
[in_data, in_info] = rm.rfutils.load_rmarb(iqpath);
in_data = rm.rfutils.resample_iq(in_data, 600e6, fs); % 原输入波形采样率是 600MHz，重采样到 fs
rm.rfsa.spectrum(in_data, fs, true);

%FS = 625 MHz, Burst 0 startIdx 125986, stopIdx 176506
startIdx = 125986;
stopIdx = 176506;
iqpath = '.\data\2400_WLAN11BE_BW320M_EHT2x_GI1.6_MCS7_LEN4096Byte\WLAN11BE_BW320M_EHT2x_GI1.6_MCS7_LEN4096Byte_2400_RF_board.float';
[prefix, ~] = rm.rfutils.load_iq(iqpath, 'float32', 0, startIdx); % 原始的头部前缀
[out_data, out_info] = rm.rfutils.load_iq(iqpath, 'float32', startIdx*8, in_info.SAMPLES); % 输出的 IQ 数据时间比较长，只取一个周期的
rm.rfsa.spectrum(out_data, fs, true);

% 计算频率响应
N = length(A);

% 1. 估计系统频率响应
A_fft = fft(A, N);
B_fft = fft(B, N);

% 计算原始频率响应
H_raw = B_fft ./ A_fft;

% 处理除零和噪声问题
small_values = abs(A_fft) < max(abs(A_fft)) * 1e-6;
H_raw(small_values) = 1;  % 在这些频率点设为无失真